/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.itsc.dswII.view;

import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import mx.itsc.dswII.bl.BeneficioBlLocal;
import mx.itsc.dswII.bl.OfertaBlLocal;
import mx.itsc.dswII.bl.PersonalBlLocal;
import mx.itsc.dswII.model.Beneficio;
import mx.itsc.dswII.model.Oferta;
import mx.itsc.dswII.model.Persona;

/**
 *
 * @beneficio Lenovo-user
 */
@ManagedBean
@SessionScoped
public class BeneficioBean {

    @EJB
    private PersonalBlLocal personalBl;
    @EJB
    private OfertaBlLocal ofertaBl;
    @EJB
    private BeneficioBlLocal beneficioBl;
    //Variables (Propiedades)
    private List<Beneficio> lista;
    private Beneficio beneficio;
    private String accion="", desicion="";
    private int ofertaSeleccionada;
    private int personaId;
    private Persona persona;
    private Oferta oferta;

    public int getPersonaId() {
        return personaId;
    }

    public void setPersonaId(int personaId) {
        this.personaId = personaId;
    }

    public Persona getPersona() {
        return persona;
    }

    public void setPersona(Persona persona) {
        this.persona = persona;
    }

    public Oferta getOferta() {
        return oferta;
    }

    public void setOferta(Oferta oferta) {
        this.oferta = oferta;
    }

    public int getOfertaSeleccionada() {
        return ofertaSeleccionada;
    }

    public void setOfertaSeleccionada(int ofertaSeleccionada) {
        this.ofertaSeleccionada = ofertaSeleccionada;
    }

    public BeneficioBean() {
        beneficio = new Beneficio();
        persona = new Persona();
        oferta = new Oferta();
    }

    public List<Beneficio> getLista() {
        lista = beneficioBl.getAll();
        return lista;
    }

    public Beneficio getBeneficio() {
        return beneficio;
    }

    public void setBeneficio(Beneficio beneficio) {
        this.beneficio = beneficio;
    }

    //Acciones es lo ultimo en ejecutarse
//    public String prepararNuevo() {
//        beneficio = new Beneficio();
//        return "AutthorCreateEdit";
//    }
    //Listeners es lo primero que se va a ejecutar y sabes datos de el como a que boton o componente se le dio click 
    // a que hora, donde, quien 
    public void prepararNuevo(ActionEvent evt) {
        accion = "Nuevo";
        beneficio = new Beneficio();

    }

    public void prepararEditar(ActionEvent evt) {
        accion = "Editar";
        lista = beneficioBl.getListByNombre(beneficio);
//        System.out.println(evt.getComponent().getClientId());
//        /*String arr[]=evt.getComponent().getClientId().split(":");
//         String id=arr[2];
//         int index=Integer.parseInt(id);
//         */
//        int index = Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
//        beneficio = lista.get(index);
    }

    public void prepararEliminar(ActionEvent evt) {
        accion = "Eliminar";
        lista = beneficioBl.getListByNombre(beneficio);
//        System.out.println(evt.getComponent().getClientId());
//        int index = Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
//        beneficio = lista.get(index);
    }

    public String procesarAccion() {
        if (accion.equalsIgnoreCase("Nuevo")) {
//            beneficio.setPersonaid(personalBl.getPersonaById(personaId));
//            beneficio.setOfertaid(ofertaBl.getOfertaById(ofertaSeleccionada));
            beneficioBl.register(beneficio);

        } else {
            if (accion.equalsIgnoreCase("Editar")) {
                beneficioBl.modify(beneficio);
            } else {
                if (accion.equalsIgnoreCase("Eliminar")) {
                    beneficioBl.remove(beneficio);
                }
            }
        }

        accion = "";
        return "ListBeneficio";

    }

    public String procesarCancelar() {

        if (accion.equalsIgnoreCase("Editar") || accion.equalsIgnoreCase("Nuevo")) {
            desicion = "CrearEditarBeneficio";

        } else {
            if (accion.equalsIgnoreCase("Eliminar")) {
                desicion = "ListBeneficio";
            }
        }
        return desicion;
    }
    public String confirmar(){
       beneficio.setPersonaid(personalBl.getPersonaById(personaId));
        beneficio.setOfertaid(ofertaBl.getOfertaById(ofertaSeleccionada));
        return "ConfirmarBeneficio";
    }
//   
}
